دوال التعامل مع البيانات في SQL: الأنواع والتطبيقات
تعتبر لغة SQL (Structured Query Language) من اللغات الأساسية التي يعتمد عليها مطورو قواعد البيانات، حيث تتيح هذه اللغة للمستخدمين إجراء العمليات المختلفة على البيانات المخزنة في الجداول. ومن بين العمليات الأكثر أهمية في SQL تأتي الدوال التي تسهل التعامل مع البيانات بشكل متقدم، سواء كان ذلك في عمليات الحساب، أو التحويل، أو التجميع، أو التعامل مع النصوص، أو التاريخ والوقت.
في هذا المقال، سنتناول أهم أنواع الدوال التي تُستخدم في SQL، وكيفية الاستفادة منها في معالجة البيانات، مع شرح مفصل لأغراض استخدامها في بيئات قواعد البيانات المتنوعة.
1. الدوال العددية (Numeric Functions)
تعد الدوال العددية من الدوال الأساسية التي تُستخدم في SQL لإجراء عمليات حسابية على القيم الرقمية. تشمل هذه الدوال العمليات الأساسية مثل الجمع، والطرح، والضرب، والقسمة، بالإضافة إلى الدوال المتقدمة التي تساعد في التعامل مع الأرقام بشكل أكثر تفصيلاً.
1.1 الدالة ABS
تُستخدم دالة ABS لحساب القيمة المطلقة للعدد. فبغض النظر عن ما إذا كان الرقم سالباً أو إيجابياً، فإن هذه الدالة ستُرجع دائمًا القيمة الموجبة لهذا العدد.
sqlSELECT ABS(-25) AS AbsoluteValue;
1.2 الدالة CEIL أو CEILING
تُستخدم هذه الدالة لتقريب الرقم العشري إلى العدد الصحيح الأكبر منه. مثلاً، إذا كان الرقم 2.3، فإن الدالة CEIL سترجعه كـ 3.
sqlSELECT CEIL(2.3) AS CeilingValue;
1.3 الدالة FLOOR
دالة FLOOR هي العكس تماماً لدالة CEIL، فهي تقوم بتقريب الرقم العشري إلى العدد الصحيح الأقل منه.
sqlSELECT FLOOR(2.7) AS FloorValue;
1.4 الدالة ROUND
تُستخدم دالة ROUND لتقريب الأرقام العشرية إلى عدد معين من المنازل العشرية. يمكن استخدام هذه الدالة في العمليات التي تتطلب دقة معينة في النتائج.
sqlSELECT ROUND(25.6789, 2) AS RoundedValue;
1.5 الدالة POWER
تقوم دالة POWER بحساب القيمة الأسية لعدد معين. على سبيل المثال، إذا أردت حساب 2 مرفوعاً للقوة 3، يمكنك استخدام هذه الدالة.
sqlSELECT POWER(2, 3) AS ExponentResult;
2. الدوال النصية (String Functions)
في عالم قواعد البيانات، يعتبر التعامل مع النصوص جزءاً أساسياً من معالجة البيانات. توفر SQL مجموعة من الدوال التي تتيح للمستخدم إجراء عمليات على النصوص، مثل التقطيع، والتحويل إلى أحرف كبيرة أو صغيرة، وإيجاد طول النصوص، وغير ذلك.
2.1 الدالة CONCAT
تستخدم دالة CONCAT لدمج أكثر من نص في نص واحد. يمكن لهذه الدالة أن تأخذ نصوصاً متعددة وتدمجها معاً بشكل سلس.
sqlSELECT CONCAT('Hello', ' ', 'World') AS FullText;
2.2 الدالة SUBSTRING
تُستخدم دالة SUBSTRING لاستخراج جزء معين من النص، بناءً على تحديد الموضع وعدد الحروف المطلوبة.
sqlSELECT SUBSTRING('Hello World', 1, 5) AS SubstringValue;
2.3 الدالة LENGTH
تُستخدم دالة LENGTH للحصول على طول النص، أي عدد الأحرف التي يحتوي عليها النص.
sqlSELECT LENGTH('Hello World') AS TextLength;
2.4 الدالة UPPER و LOWER
تُستخدم دوال UPPER و LOWER لتحويل النصوص إلى أحرف كبيرة أو صغيرة على التوالي.
sqlSELECT UPPER('hello world') AS UpperCaseText;
SELECT LOWER('HELLO WORLD') AS LowerCaseText;
2.5 الدالة TRIM
تُستخدم دالة TRIM لإزالة الفراغات الزائدة من بداية ونهاية النص. هي مفيدة بشكل خاص عندما يتم التعامل مع البيانات المدخلة التي تحتوي على فراغات غير ضرورية.
sqlSELECT TRIM(' Hello World ') AS TrimmedText;
3. الدوال التاريخية (Date and Time Functions)
تعد الدوال التي تتعامل مع التواريخ والأوقات من الدوال الهامة جداً في SQL، حيث تُستخدم في حالات عديدة مثل مقارنة التواريخ، استخراج أجزاء معينة من التاريخ، أو حتى إضافة أو طرح وقت معين.
3.1 الدالة NOW
تُستخدم دالة NOW لاسترجاع التاريخ والوقت الحالي في قاعدة البيانات.
sqlSELECT NOW() AS CurrentDateTime;
3.2 الدالة CURDATE
تُستخدم دالة CURDATE لاسترجاع التاريخ الحالي فقط دون الوقت.
sqlSELECT CURDATE() AS CurrentDate;
3.3 الدالة DATE_ADD و DATE_SUB
تسمح دوال DATE_ADD و DATE_SUB بإضافة أو طرح فترة زمنية معينة من التاريخ. على سبيل المثال، يمكنك إضافة 10 أيام إلى التاريخ الحالي باستخدام DATE_ADD.
sqlSELECT DATE_ADD(CURDATE(), INTERVAL 10 DAY) AS FutureDate;
SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS PastDate;
3.4 الدالة YEAR و MONTH و DAY
تُستخدم هذه الدوال لاستخراج أجزاء معينة من التاريخ، مثل السنة أو الشهر أو اليوم.
sqlSELECT YEAR(CURDATE()) AS CurrentYear;
SELECT MONTH(CURDATE()) AS CurrentMonth;
SELECT DAY(CURDATE()) AS CurrentDay;
4. دوال التجميع (Aggregate Functions)
دوال التجميع في SQL تُستخدم لتحليل البيانات وإجراء العمليات الحسابية على مجموعات من السجلات. هذه الدوال ضرورية في حال الحاجة إلى جمع البيانات أو حساب المتوسطات أو إيجاد القيم العليا أو الدنيا.
4.1 الدالة COUNT
تُستخدم دالة COUNT لحساب عدد السجلات في مجموعة معينة أو عدد القيم غير الفارغة في عمود محدد.
sqlSELECT COUNT(*) AS TotalRecords FROM employees;
4.2 الدالة SUM
تُستخدم دالة SUM لحساب مجموع القيم في عمود معين.
sqlSELECT SUM(salary) AS TotalSalary FROM employees;
4.3 الدالة AVG
تُستخدم دالة AVG لحساب متوسط القيم في عمود معين.
sqlSELECT AVG(salary) AS AverageSalary FROM employees;
4.4 الدالة MAX و MIN
تُستخدم دوال MAX و MIN لإيجاد القيمة الأعلى أو الأدنى في عمود معين.
sqlSELECT MAX(salary) AS MaxSalary FROM employees;
SELECT MIN(salary) AS MinSalary FROM employees;
5. الدوال الشرطية (Conditional Functions)
الدوال الشرطية تتيح للمستخدم إجراء عمليات حسابية أو استرجاع نتائج بناءً على شرط معين. إحدى الدوال الأكثر استخداماً في هذه الفئة هي دالة CASE.
5.1 الدالة CASE
تُستخدم دالة CASE لتنفيذ العمليات الشرطية في SQL. تسمح هذه الدالة بتحديد شروط معينة وإرجاع قيم مختلفة بناءً على تلك الشروط.
sqlSELECT CASE
WHEN salary > 5000 THEN 'High'
WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'
ELSE 'Low'
END AS SalaryRange
FROM employees;
6. الدوال المتخصصة (Miscellaneous Functions)
هناك أيضاً مجموعة من الدوال المتخصصة التي تُستخدم لأغراض محددة مثل تحويل البيانات بين أنواع مختلفة، أو التعامل مع قيم NULL.
6.1 الدالة COALESCE
تُستخدم دالة COALESCE لاختيار أول قيمة غير NULL من بين مجموعة من القيم.
sqlSELECT COALESCE(NULL, NULL, 'Hello', 'World') AS FirstNonNullValue;
6.2 الدالة IFNULL
تُستخدم دالة IFNULL للتحقق مما إذا كانت القيمة NULL واستبدالها بقيمة معينة.
sqlSELECT IFNULL(NULL, 'Default Value') AS NonNullValue;
7. الخاتمة
تعتبر الدوال في SQL جزءاً أساسياً في التعامل مع البيانات بشكل فعال، حيث توفر مجموعة واسعة من الأدوات التي تُسهل تحليل البيانات ومعالجتها بطرق مختلفة. من خلال معرفة كيفية استخدام هذه الدوال بفعالية، يمكن للمطورين الحصول على نتائج دقيقة وفعالة في قواعد البيانات.

